package jbp.core;

/**
 * 数据实体基类，所有与数据库映射的实体需继承此基类，
 * 采用泛型，接收int,long类型
 * @param <T>
 */
public class JbpBaseEntity<T> {
    private T id;

    public T getId() {
        return id;
    }

    public void setId(T id) {
        this.id = id;
    }

    /**
     * 重写equals方法，比对id一样就认定为同一个对象
     * @param object
     * @return
     */
    @Override
    public boolean equals(Object object) {
        if (object instanceof JbpBaseEntity) {
            JbpBaseEntity base = (JbpBaseEntity) object;
            return base.getId() == this.id ? true : false;
        }
        return false;
    }

    /**
     * 重写hashcode方法，返回的hashCode不一样才认定为不同的对象
     */
    @Override
    public int hashCode() {
        //return id.hashCode(); // 只比较id，id一样就不添加进集合
        return ((T) this.id).hashCode();
    }
}
